/**
 * Copyright (c) 2009 blurredVision
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
 * associated documentation files (the "Software"), to deal in the Software without restriction, 
 * including without limitation the rights to use, copy, modify, merge, publish, distribute, 
 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or 
 * substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT 
 * NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT 
 * OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
#ifndef __GUI_CONFIRM_DIALOG_H__
#define __GUI_CONFIRM_DIALOG_H__

#pragma once

#include <string>

namespace gui {
	class Button;
	class Canvas;
	class Label;
}

namespace gui {

/// Options for the Dialog
enum eDialogOptions {
	GUI_YES = 1,
	GUI_NO  = 2,
	GUI_OK  = 4
};

/**
 * \ingroup coreGUI
 *
 * The GUI Dialog class.<br>
 * Creates a small dialog window with the posibility to have an OK, YES and NO button
 *
 * \date 03-28-2007
 *
 * \author juckel
 * \author dennis
 *
 * \todo Probably not working correctly. Do over.
 *
 */
class GUI_EXPORT Dialog 
{
public:
	Dialog(void);
	virtual ~Dialog(void);

//	void draw();
//	void drawHighlight();

	Button* getOKButton();
	Button* getYesButton();
	Button* getNoButton();
	Canvas* getDialogCanvas();
	Label* getLabel();
	const std::string& getTitle();

	void reset() {}
	void release() {}

protected:
	virtual void create();

	int iDialogOptions;

	Canvas *canvas;
	Label  *label;
	Button *okButton;
	Button *yesButton;
	Button *noButton;
};

} // namespace

#endif
